package songZhao.MinaDemo.SimpleDemo;

import org.apache.mina.core.filterchain.IoFilterAdapter;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.core.write.WriteRequest;
/**
 * IoFilterAdapter 是个适配器空类,用来编写过滤器filter
 * 这里只实现了两个是适配器方法,并且通过在server类中进行注册,而且注册位置在proto过滤器之前.
 * @author agui415
 *
 */
public class ServerFilter extends IoFilterAdapter {

	/**
	 * 一个值得注意的现象是,当这个过滤器使用的时候,如果使用telnet做客户端,会发现
	 * 每按一次按键,都会触发一次这个方法.也就是说.telnet并不是按行进行发送的.
	 * 而且有趣的是,控制字符也会被发送过来.
	 */
	@Override
	public void messageReceived(NextFilter nextFilter, IoSession session, Object message) throws Exception {
		System.out.println("ServerFileter messageReceived: ");
		/**
		 * 下边这个nextFilter就将过滤器获得的这些信息转发给下一个过滤器来进行处理.
		 */
		nextFilter.messageReceived(session, message);
	}

	@Override
	public void messageSent(NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws Exception {
		System.out.println("ServerFilter messageSent");
		nextFilter.messageSent(session, writeRequest);
	}
	
}
